package com.sys.SysSales.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sys.common.annotation.Excel;
import com.sys.common.core.domain.BaseEntity;

/**
 * 销售统计对象 sys_sales_summary
 * 
 * @author ruoyi
 * @date 2025-09-28
 */
@Data
public class SysSalesSummary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long summaryId;

    /**  */
    @Excel(name = "")
    private String periodType;

    /** 统计日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "统计日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date periodDate;

    /** 订单总数 */
    @Excel(name = "订单总数")
    private Long totalOrders;

    /** 销售总额 */
    @Excel(name = "销售总额")
    private BigDecimal totalAmount;

    /** 平均订单价值 */
    @Excel(name = "平均订单价值")
    private BigDecimal avgOrderValue;

    /** 热销产品 */
    @Excel(name = "热销产品")
    private String topProductId;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updatedBy;



    /** 产品名称 */
    @Excel(name = "产品名称")
    private String topProductName;

//    public String getTopProductName() {
//        return topProductName;
//    }
//
//    public void setTopProductName(String topProductName) {
//        this.topProductName = topProductName;
//    }
    /** 开始日期 */
    @Excel(name = "开始日期")
    private String beginTime;
    /** 结束日期 */
    @Excel(name = "结束日期")
    private String endTime;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;







    // 总销售数量（对应sum(od.quantity)）
    private Integer totalQuantity=0;



//    public String getBeginTime() {
//        return beginTime;
//    }
//
//    public void setBeginTime(String beginTime) {
//        this.beginTime = beginTime;
//    }
//
//    public String getEndTime() {
//        return endTime;
//    }
//
//    public void setEndTime(String endTime) {
//        this.endTime = endTime;
//    }
//
//
//
//    public void setSummaryId(Long summaryId)
//    {
//        this.summaryId = summaryId;
//    }
//
//    public Long getSummaryId()
//    {
//        return summaryId;
//    }
//
//    public void setPeriodType(String periodType)
//    {
//        this.periodType = periodType;
//    }
//
//    public String getPeriodType()
//    {
//        return periodType;
//    }
//
//    public void setPeriodDate(Date periodDate)
//    {
//        this.periodDate = periodDate;
//    }
//
//    public Date getPeriodDate()
//    {
//        return periodDate;
//    }
//
//    public void setTotalOrders(Long totalOrders)
//    {
//        this.totalOrders = totalOrders;
//    }
//
//    public Long getTotalOrders()
//    {
//        return totalOrders;
//    }
//
//    public void setTotalAmount(BigDecimal totalAmount)
//    {
//        this.totalAmount = totalAmount;
//    }
//
//    public BigDecimal getTotalAmount()
//    {
//        return totalAmount;
//    }
//
//    public void setAvgOrderValue(BigDecimal avgOrderValue)
//    {
//        this.avgOrderValue = avgOrderValue;
//    }
//
//    public BigDecimal getAvgOrderValue()
//    {
//        return avgOrderValue;
//    }
//
//    public void setTopProductId(Long topProductId)
//    {
//        this.topProductId = topProductId;
//    }
//
//    public Long getTopProductId()
//    {
//        return topProductId;
//    }
//
//    public void setCreatedBy(String createdBy)
//    {
//        this.createdBy = createdBy;
//    }
//
//    public String getCreatedBy()
//    {
//        return createdBy;
//    }
//
//    public void setCreatedAt(Date createdAt)
//    {
//        this.createdAt = createdAt;
//    }
//
//    public Date getCreatedAt()
//    {
//        return createdAt;
//    }
//
//    public void setUpdatedBy(String updatedBy)
//    {
//        this.updatedBy = updatedBy;
//    }
//
//    public String getUpdatedBy()
//    {
//        return updatedBy;
//    }
//
//    public void setUpdatedAt(Date updatedAt)
//    {
//        this.updatedAt = updatedAt;
//    }
//
//    public Date getUpdatedAt()
//    {
//        return updatedAt;
//    }
//
//    @Override
//    public String toString() {
//        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
//            .append("summaryId", getSummaryId())
//            .append("periodType", getPeriodType())
//            .append("periodDate", getPeriodDate())
//            .append("totalOrders", getTotalOrders())
//            .append("totalAmount", getTotalAmount())
//            .append("avgOrderValue", getAvgOrderValue())
//            .append("topProductId", getTopProductId())
//            .append("createdBy", getCreatedBy())
//            .append("createdAt", getCreatedAt())
//            .append("updatedBy", getUpdatedBy())
//            .append("updatedAt", getUpdatedAt())
//                .append("topProductName", getTopProductName())
//                .append("beginTime", getBeginTime())
//                .append("endTime", getEndTime())
//            .toString();
//    }
}
